<?php
class Movimentos_estoque {
  private $id_movimento_estoque;
  private $tipo;
  private $id_produto;
  private $data_movimento;
  
  public function __construct($sFiltro = "", $sOrdem = "id_movimento_estoque") {
    global $oDB;
    $sSQL = "SELECT id_movimento_estoque, tipo, id_produto, data_movimento FROM movimentos_estoque";
    if ($sFiltro) {
      $sSQL .= " WHERE ($sFiltro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    if (!empty($sFiltro)) {
      $oRes = $oDB->Execute($sSQL);
      if ($oRes == false) {
        trigger_error($oDB->ErrorMsg());
      } else {
        $this->id_movimento_estoque = $oRes->fields['id_movimento_estoque'];
        $this->tipo = $oRes->fields['tipo'];
        $this->id_produto = $oRes->fields['id_produto'];
        $this->data_movimento = $oRes->fields['data_movimento'];
      }
    }
  }
  
  public function getId_movimento_estoque() {
    return $this->id_movimento_estoque;
  }
  public function setId_movimento_estoque($valor) {
    $this->id_movimento_estoque = $valor;
  }
  
  public function getTipo() {
    return $this->tipo;
  }
  public function setTipo($valor) {
    $this->tipo = $valor;
  }
  
  public function getId_produto() {
    return $this->id_produto;
  }
  public function setId_produto($valor) {
    $this->id_produto = $valor;
  }
  
  public function getData_movimento() {
    return $this->data_movimento;
  }
  public function setData_movimento($valor) {
    $this->data_movimento = $valor;
  }
  
  public function atualizar() {
    global $oDB;
    $campos = array(
      'tipo' => $this->tipo,
      'id_produto' => $this->id_produto,
      'data_movimento' => $this->data_movimento,
    );
    if ($this->id_movimento_estoque > 0) {
      $oDB->AutoExecute('movimentos_estoque', $campos, 'UPDATE', 'id_movimento_estoque = '.intval($this->id_movimento_estoque));
    } else {
      $oDB->AutoExecute('movimentos_estoque', $campos, 'INSERT');
    }
  }
  public function excluir($aIds) {
    global $oDB;
    $sIds = implode(',', $aIds);
    $sSQL = 'DELETE FROM movimentos_estoque WHERE id_movimento_estoque IN ('. $sIds .')';
    $oRes = $oDB->execute($sSQL);
    if ($oRes != false) {
      return true;
    }
  }
  public static function listar($filtro = "", $sOrdem = "id_movimento_estoque") {
    global $oDB;
    $lista = array();
    $sSQL = "SELECT id_movimento_estoque, tipo, id_produto, data_movimento FROM movimentos_estoque";
    if ($filtro) {
      $sSQL .= " WHERE ($filtro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    $oRes = $oDB->Execute($sSQL);
    if ($oRes == false) {
      trigger_error($oDB->ErrorMsg());
    } else {
      while (!$oRes->EOF) {
        $linha = new self();
        $linha->id_movimento_estoque = $oRes->fields['id_movimento_estoque'];
        $linha->tipo = $oRes->fields['tipo'];
        $linha->id_produto = $oRes->fields['id_produto'];
        $linha->data_movimento = $oRes->fields['data_movimento'];
        $lista[] = $linha;
        
        $oRes->MoveNext();
      }
    }
    return $lista;
  }
  
}
?>
